package com.springboot.frame.excel.handler;

import org.apache.poi.ss.usermodel.Cell;

/**
 * @author madman
 */
public class PrecisionCellHandler extends AbstractBaseCellHandler<Number> {

  /**
   * 精度处理器实例
   */
  static final PrecisionCellHandler INSTANCE = new PrecisionCellHandler();

  /**
   * Cell设值
   *
   * @param cell Cell对象
   * @param data 数据
   */
  @Override
  public void doWrite(Cell cell, Number data) {
    if (data != null) {
      cell.setCellValue(data.doubleValue());
    }
  }

  /**
   * Cell读值
   *
   * @param cell Cell对象
   * @return Cell对象上的值
   */
  @Override
  public Number read(Cell cell, Object object) {
    switch (cell.getCellTypeEnum()) {
      case NUMERIC:
        return cell.getNumericCellValue();
      case STRING:
        return Double.valueOf(cell.getStringCellValue());
      default:
        return null;
    }
  }

}
